#pragma once

#include <spdlog/spdlog.h>
#include <memory>

namespace SCION_UTIL {
    class Log {
    public:
        static void Init();
        static void Info(const std::string& message);
        static void Warn(const std::string& message);
        static void Error(const std::string& message);

    private:
        static std::shared_ptr<spdlog::logger> s_CoreLogger;
    };
}

// 日志宏定义
#define SCION_INIT(...)  ::SCION_UTIL::Log::Init()
#define SCION_INFO(...)  ::SCION_UTIL::Log::Info(__VA_ARGS__)
#define SCION_WARN(...)  ::SCION_UTIL::Log::Warn(__VA_ARGS__)
#define SCION_ERROR(...) ::SCION_UTIL::Log::Error(__VA_ARGS__)
